home *** CD-ROM | disk | FTP | other *** search
/ HamCall (October 1991) / HamCall (Whitehall Publishing)(1991).bin / prgming / advbas / advbas.qrf < prev    next >
Text File  |  1990-10-14  |  19KB  |  472 lines

  1.                           ADVBAS v4.0 Quick Reference
  2.  
  3.  
  4.  
  5.     Note: variable names here are chosen for special clarity and may not
  6.  match those found in the ADVBAS.DOC file.  The names of the variables used
  7.  are not important per se and may be changed readily.  This is a quick
  8.  reference for your convenience, and is not intended to be used without the
  9.  ADVBAS.DOC manual.
  10.  
  11.  
  12.     Routines which use arrays or communications are marked as follows:
  13.  
  14.  *not QB4*     if they won't work with the QB environment of QuickBASIC 4.0
  15.  *not BC *     if they won't work with the BC compiler of QuickBASIC 4.0
  16.  
  17.     The array problem is due to bugs in QuickBASIC 4.0 which can be gotten
  18.  around, but which would require major revision of the affected ADVBAS
  19.  routines. Due to my contract with HCSI, I may not do this.  However, the
  20.  array routines in ProBas are designed to work properly with QuickBASIC
  21.  4.0.  The ADVBAS communications routines simply won't work any more, which
  22.  I'm still investigating-- Microsoft pulled a weird one here.
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  ADDMATI       Add a scalar to an array.
  29.  *not QB4*     CALL ADDMATI(VARPTR(ARRAY(1)), ARRAYSIZE, SCALAR, OVFLOWERR)
  30.  
  31.  ANY2DEC       Convert an integer in any base (2-35) to decimal (base 10).
  32.                CALL ANY2DEC(ANYNUM$, NUMBASE, DECNUM, ERRCODE)
  33.  
  34.  BKSCROLL      Scroll part of the screen backwards or clear it.
  35.                BKSCROLL(LEFTCOL, TOPROW, RTCOL, BOTROW, LINES)
  36.  
  37.  BKSPACE       Destructive backspace.
  38.                CALL BKSPACE(COL, ROW)
  39.                LOCATE ROW, COL
  40.  
  41.  BLOCKMOVE     Copy information from one area of memory to another.
  42.                Direction: 0 forward, nonzero backward
  43.                CALL BLOCKMOVE(FROMSEG, FROMOFS, TOSEG, TOOFS, BYTES, DIRECTION)
  44.  
  45.  BSQ           Squeeze the blanks out of a text string by encoding it.
  46.                CALL BSQ(ST$, SLEN)
  47.                ST$ = LEFT$(ST$, SLEN)
  48.  
  49.  BUSQLEN       Tell how long a BSQed string will be once unsqueezed.
  50.                CALL BUSQLEN(ST$, SLEN)
  51.                USQST$ = SPACE$(SLEN)
  52.  
  53.  BUSQ          Unsqueeze a BSQed string (use this -after- BUSQLEN).
  54.                CALL BUSQ(ST$, USQST$)
  55.  
  56.  CALCATTR      Calculate attribute (for Xqprint, etc) from colors.
  57.                CALL CALCATTR(FOREGROUND, BACKGROUND, ATTRIBUTE)
  58.  
  59.  CARRIER       Get modem Carrier Detect status.
  60.  *not QB4*     Status: 0 off, nonzero on
  61.  *not BC *     CALL CARRIER(COMMPORT, CDSTATUS)
  62.  
  63.  CHECKSUM      Calculate Xmodem-type checksum for a string.
  64.                CALL CHECKSUM(RECORD$, CHKSUM)
  65.  
  66.  CLREOL        Clear to the end of the current screen line.
  67.                CALL CLREOL
  68.  
  69.  CLRKBD        Clear the keyboard buffer of any pending keys.
  70.                CALL CLRKBD
  71.  
  72.  COPYFILE      Copies a file.
  73.                CALL COPYFILE(FROMFILE$+CHR$(0), TOFILE$+CHR$(0), ERRCODE)
  74.  
  75.  CRC           Calculate Xmodem-type Cyclical Redundancy Check for a string.
  76.                CALL CRC(RECORD$, HICRC, LOCRC)
  77.  
  78.  DATASEG       Return BASIC's Data Segment.
  79.                CALL DATASEG(DSEG)
  80.  
  81.  DATE2INT      Squeeze a date to a single integer.
  82.                CALL DATE2INT(MONTH, DAY, YEAR, SQZDATE)
  83.  
  84.  DATEN2S       Convert a date from numeric to string form.
  85.                CALL DATEN2S(MONTH, DAY, YEAR, DAT$)
  86.  
  87.  DATES2N       Convert a date from string to numeric form.
  88.                CALL DATES2N(MONTH, DAY, YEAR, DAT$)
  89.  
  90.  DEC2ANY       Converts a decimal (base 10) integer to any base (2-35).
  91.                CALL DEC2ANY(DECNUM, NUMBASE, ANYNUM$, ALEN)
  92.                ANYNUM$ = RIGHT$(ANYNUM$, ALEN)
  93.  
  94.  DELAY         Delays for a given number of seconds.
  95.                CALL DELAY(SECONDS)
  96.  
  97.  DELAY18TH     Delays for a given number of 18ths of seconds.
  98.                CALL DELAY18TH(FRACSECONDS)
  99.  
  100.  DELCHR        Delete a char from the specified screen location.
  101.                CALL DELCHR(ROW, COL)
  102.  
  103.  DELSUB        Delete a subdirectory.
  104.                CALL DELSUB(SUB$+CHR$(0), ERRCODE)
  105.  
  106.  DISKSTAT      Returns disk status information.
  107.                CALL DISKSTAT(DRIVE$, FREE.CLUSTERS, TOTAL.CLUSTERS,
  108.                              BYTES.PER.SECTOR, SECTORS.PER.CLUSTER)
  109.  
  110.  DMPRINT       Displays a string using only DOS functions.
  111.                CALL DMPRINT(ST$)
  112.  
  113.  DOSINKEY      Get a character from the DOS standard input device.
  114.                CALL DOSINKEY(CHRCODE, CHRTYPE)
  115.  
  116.  DRVSPACE      Return free space left on disk (error returns negative value).
  117.                CALL DRVSPACE(DRV$, A, B, C)
  118.                FREE# = CDBL(A) * CDBL(B) * CDBL(C)
  119.  
  120.  DTR           Set the comm signal DTR.
  121.  *not QB4*     DTRSTAT: 0 off, nonzero on
  122.  *not BC *     CALL DTR(COMMPORT, DTRSTAT)
  123.  
  124.  EQUIPMENT     Return hardware configuration: K of RAM and I/O ports.
  125.                CALL EQUIPMENT(MEMORY, PARALLEL, SERIAL, JOYSTICK)
  126.  
  127.  EXIST         See if a given file exists (no wildcards).
  128.                CALL EXIST(FIL$+CHR$(0), FILEXISTS)
  129.                IF FILEXISTS THEN PRINT "File exists"
  130.  
  131.  EXTRACT       Extract a substring from a string using a given delimiter.
  132.                CALL EXTRACT(ST$, DELIM$, INDEX, START, SLEN)
  133.                SUBSTR$ = MID$(ST$, START, SLEN)
  134.  
  135.  FCLOSE        Close a file opened by FOPEN or FCREATE.
  136.                CALL FCLOSE(HANDLE)
  137.  
  138.  FCREATE       Create a file or truncate an existing one.
  139.                Attribute: 0 normal, 2 hidden, 32 archive.
  140.                CALL FCREATE(FIL$+CHR$(0), ATTR, HANDLE, ERRCODE)
  141.  
  142.  FINDFIRSTF    Get a file using wildcards (used for first call).  See also
  143.                FINDNEXTF, GETNAMEF, GETATTRF, GETDATEF, GETTIMEF, GETSIZEF.
  144.                CALL FINDFIRST(FIL$+CHR$(0), ATTR, ERRCODE)
  145.  
  146.  FINDNEXTF     Get the next file using wildcards (see FINDFIRSTF et al).
  147.                CALL FINDNEXTF(ERRCODE)
  148.  
  149.  FOPEN         Open an existing file.
  150.                Access: 0 read, 1 write, 2 read/write
  151.                Mode: 0 normal, 1 exclude, 2 deny wrt, 3 deny read, 4 deny none
  152.                CALL FOPEN(FIL$+CHR$(0), FACCESS, FMODE, HANDLE, ERRCODE)
  153.  
  154.  FREAD         Read from a file opened by FOPEN or FCREATE.
  155.  *not QB4*     CALL FREAD(HANDLE, VARPTR(ARRAY(1)), BYTES, BYTESREAD, ERRCODE)
  156.  
  157.  FSETEND       Move to the end of an open file (for appending).
  158.                CALL FSETEND(HANDLE)
  159.  
  160.  FSETREC       Move to a given record of an open file.
  161.                CALL FSETREC(HANDLE, RECSIZE, RECNUMBER)
  162.  
  163.  FWRITE        Write to a file opened by FOPEN or FCREATE.
  164.  *not QB4*     CALL FWRITE(HANDLE, VARPTR(ARRAY(1)), BYTES, BYTESWRIT, ERRCODE)
  165.  
  166.  GETATTRF      Get the attribute of a file found with FINDxxxF.
  167.                Attribute: 1 readonly, 2 hidden, 4 system, 8 volume label,
  168.                           16 subdir, 32 archive.  Attributes are additive.
  169.                CALL GETATTRF(ATTR)
  170.  
  171.  GETCRT        Get the display type (0: mono, -1: color).
  172.                CALL GETCRT(DISPLAYTYPE)
  173.  
  174.  GETDATEF      Get the date of a file found with FINDxxxF.
  175.                CALL GETDATEF(MONTH, DAY, YEAR)
  176.  
  177.  GETDOSV       Get the current DOS version.
  178.                CALL GETDOSV(MAJORV, MINORV)
  179.  
  180.  GETDRV        Get the current default disk drive.
  181.                DRV$ = " "
  182.                CALL GETDRV(DRV$)
  183.  
  184.  GETEXTM       Get amount of extended memory (AT systems only).
  185.                CALL GETEXTM(KILOBYTES)
  186.  
  187.  GETFATTR      Get the attribute of a file.
  188.                Attribute: 1 readonly, 2 hidden, 4 system, 8 volume label,
  189.                           16 subdir, 32 archive.  Attributes are additive.
  190.                CALL GETFATTR(FIL$+CHR$(0), ATTR)
  191.  
  192.  GETFDATE      Get the date of a file.  If error, MONTH set to -1.
  193.                CALL GETFDATE(FIL$+CHR$(0), MONTH, DAY, YEAR)
  194.  
  195.  GETFTIME      Get the (24hr) time of a file.  If error, HOUR set to -1.
  196.                CALL GETFTIME(FIL$+CHR$(0), HOUR, MINUTE, SECOND)
  197.  
  198.  GETKBD        Get the status of the keyboard toggles.
  199.                CALL GETKBD(INSERT, CAPSLOCK, NUMLOCK, SCROLLLOCK)
  200.  
  201.  GETKEY        Wait for and return one of a specified list of keys.
  202.                KY$=" "
  203.                CALL GETKEY(GOODKEY$, KY$)
  204.  
  205.  GETLIMM       Returns the status of expanded memory in the system.
  206.                CALL GETLIMM(TOTPAGES, FREEPAGES)
  207.  
  208.  GETLINE       Returns a selected line from a saved screen (see SCRSAVE).
  209.  *not QB4*     LINE$ = SPACE$(80)
  210.                CALL GETLINE(VARPTR(SCRN(1)), LINENR, LINE$, LLEN)
  211.                LINE$ = LEFT$(LINE$, LLEN)
  212.  
  213.  GETNAMEF      Get the filename of a file found using FINDxxxF.
  214.                FIL$ = SPACE$(12)
  215.                CALL GETNAMEF(FIL$, FLEN)
  216.                FIL$ = LEFT$(FIL$, FLEN)
  217.  
  218.  GETSCREEN     Get and save any part of any screen page in an array.
  219.  *not BC *     CALL GETSCREEN(SCRN(0), TOPROW, LFTCOL, BOTROW, RGTCOL,
  220.  *not QB4*                    PAGE, SCRMODE)
  221.  
  222.  GETSIZEF      Get the size of a file found using FINDxxxF.
  223.                CALL GETSIZEF(SIZELO, SIZEHI)
  224.                SIZELO# = CDBL(SIZELO)
  225.                IF SIZELO<0 THEN SIZELO# = SIZELO# + 65536#
  226.                FILESIZE# = SIZELO# + CDBL(SIZEHI) * 65536#
  227.  
  228.  GETSUB        Get the default subdirectory.
  229.                SUB$ = STRING$(64,0)
  230.                CALL GETSUB(SUB$, SLEN)
  231.                SUB$ = "\" + LEFT$(SUB$, SLEN)
  232.  
  233.  GETTIMEF      Return the (24hr) time of a file found using FINDxxxF.
  234.                CALL GETTIMEF(HOUR, MINUTE, SECOND)
  235.  
  236.  INSCHR        Insert a space at the specified screen location.
  237.                CALL INSCHR(ROW, COL)
  238.  
  239.  INT2DATE      Unsqueeze a date squeezed by DATE2INT.
  240.                CALL INT2DATE(MONTH, DAY, YEAR, SQZDATE)
  241.  
  242.  INT2TIME      Unsqueeze a time squeezed by TIME2INT.
  243.                CALL INT2TIME(HOUR, MIN, SEC, SQZTIME)
  244.  
  245.  KEYPRESS      Returns nonzero if a key is waiting in the keyboard buffer.
  246.                CALL KEYPRESS(KEYHIT)
  247.  
  248.  LOCASE        Convert uppercase characters to lowercase.
  249.                CALL LOCASE(ST$)
  250.  
  251.  LROTATE       Rotate the characters in a string left once.
  252.                CALL LROTATE(ST$)
  253.  
  254.  MAKESUB       Make a subdirectory.
  255.                CALL MAKESUB(SUB$+CHR$(0), ERRCODE)
  256.  
  257.  MAKEWINDOW    Makes a pop-up window appear on the display.
  258.                Frame: 0 none, 1 single lines, 2 double lines,
  259.                       3 double v single h, 4 single v double h
  260.                Type: 0 normal, 1 growing, 2 shadowed, 3 growing shadowed
  261.                CALL MAKEWINDOW(LEFTCOL, TOPROW, RIGHTCOL, BOTTOMROW,
  262.                                LABEL$, FRAME, TYPE, FORE, BACK, PAGE)
  263.  
  264.  MDELCHR       Delete char at current cursor position, obeying MWINDOW.
  265.                CALL MDELCHR
  266.  
  267.  MINSCHR       Insert space at current cursor position, obeying MWINDOW.
  268.                CALL MINSCHR
  269.  
  270.  MLOAD         Same as BASIC's BLOAD statement.
  271.                CALL MLOAD(FIL$+CHR$(0))
  272.  
  273.  MMBUTTON      Returns which mouse buttons are currently pressed.
  274.                CALL MMBUTTON(LEFTBUTTON, RIGHTBUTTON)
  275.  
  276.  MMCHECK       Returns status of mouse & number of buttons.  Resets mouse.
  277.                CALL MMCHECK(BUTTONS)
  278.                IF BUTTONS=0 THEN PRINT "No Mouse!"
  279.  
  280.  MMCLICK       Returns which mouse buttons were clicked since last check.
  281.                CALL MMCLICK(LEFTBUTTON, RIGHTBUTTON)
  282.  
  283.  MMCURSOROFF   Makes the mouse cursor invisible.
  284.                CALL MMCURSOROFF
  285.  
  286.  MMCURSORON    Makes the mouse cursor visible.
  287.                CALL MMCURSORON
  288.  
  289.  MMGETLOC      Returns the position of the mouse cursor.
  290.                CALL MMGETLOC(COL, ROW)
  291.  
  292.  MMSETLOC      Sets the position of the mouse cursor.
  293.                CALL MMSETLOC(COL, ROW)
  294.  
  295.  MMSETRANGE    Sets the range of permissible values for the mouse cursor.
  296.                CALL MMSETRANGE(LEFTCOL, TOPROW, RIGHTCOL, BOTTOMROW)
  297.  
  298.  MONTH         Given the month number, return the month name.
  299.                MONTH$ = SPACE$(9)
  300.                CALL MONTH(MONTH$, MLEN, MONTHNR)
  301.                MONTH$ = LEFT$(MONTH$, MLEN)
  302.  
  303.  MPRINTC       Display a character using DOS calls, obeying MWINDOW (qv).
  304.                CALL MPRINTC(CH$, COL, ROW)
  305.                LOCATE ROW, COL
  306.  
  307.  MPRINT        Display a string using DOS calls, obeying MWINDOW (qv).
  308.                CALL MPRINT(ST$, COL, ROW)
  309.                LOCATE ROW, COL
  310.  
  311.  MULTIAND      Performs AND on each char of a string with a supplied value.
  312.                CALL MULTIAND(ST$, ANDVAL)
  313.  
  314.  MULTIOR       Performs OR on each char of a string.
  315.                CALL MULTIOR(ST$, ORVAL)
  316.  
  317.  MULTIXOR      Performs XOR on each char of a string.
  318.                CALL MULTIXOR(ST$, XORVAL)
  319.  
  320.  MWINDOW       Set up a screen window for MPRINT/MPRINTC/MINSCHR/MDELCHR.
  321.                CALL MWINDOW(LEFTCOL, TOPROW, RTCOL, BOTROW)
  322.  
  323.  PRINTSCREEN   Send the current screen display to the first printer device.
  324.                CALL PRINTSCREEN
  325.  
  326.  PUTSCREEN     Put a saved area of the screen back at a given location.
  327.  *not BC *     CALL PUTSCREEN(SCRN(0), TOPROW, LFTCOL, BOTROW, RGTCOL,
  328.  *not QB4*                    PAGE, SCRMODE)
  329.  
  330.  QPRINT        Quick print to screen.  Doesn't understand control codes.
  331.                CALL QPRINT(ST$, ROW, COL)
  332.  
  333.  READBITF      Returns a value from an array of arbitrary (1-8) bit length.
  334.  *not QB4*     CALL READBITF(VARPTR(ARRAY(1)), INDEX, BITLEN, VALUE)
  335.  
  336.  RECOLOR       Switch everything on the screen of one color to another (text).
  337.                CALL CALCATTR(OLDFORE, OLDBACK, OLDATTR)
  338.                CALL CALCATTR(NEWFORE, NEWBACK, NEWATTR)
  339.                CALL RECOLOR(OLDATTR, NEWATTR)
  340.  
  341.  RESETPOINT    Resets a point on a text screen (0-79 col by 0-49 row).
  342.                CALL RESETPOINT(COLUMN, ROW)
  343.  
  344.  REVERSE       Reverse the chars in a string.
  345.                CALL REVERSE(ST$)
  346.  
  347.  RROTATE       Rotate the chars in a string right once.
  348.                CALL RROTATE(ST$)
  349.  
  350.  SCROLL        Scroll a section of the screen or clear it.
  351.                CALL SCROLL(LEFTCOL, TOPROW, RTCOL, BOTROW, LINES)
  352.  
  353.  SCRREST       Restore the screen display from an array (see SCRSAVE).
  354.  *not QB4*     CALL SCRREST(VARPTR(SCRN(1)))
  355.  
  356.  SCRRESTP      Restore the screen display to a given page from an array.
  357.  *not QB4*     CALL SCRREST(VARPTR(SCRN(1)), PAGE)
  358.  
  359.  SCRRESTPD     Restore the screen to a given page with direct screen writes.
  360.  *not QB4*     CALL SCRREST(VARPTR(SCRN(1)), PAGE)
  361.  
  362.  SCRSAVE       Save the current screen display to an array.
  363.  *not QB4*     CALL SCRSAVE(VARPTR(SCRN(1)))
  364.  
  365.  SCRSAVEP      Save the display on a given screen page to an array.
  366.  *not QB4*     CALL SCRSAVEP(VARPTR(SCRN(1)), PAGE)
  367.  
  368.  SCRSAVEPD     Save a given screen page with direct screen reads to an array.
  369.  *not QB4*     CALL SCRSAVEPD(VARPTR(SCRN(1)), PAGE)
  370.  
  371.  SETCOMM       Set a communications port to the given parameters.  Use the
  372.  *not QB4*     "/D" switch when compiling programs that use this routine.
  373.  *not BC *     Bps ("baud"): 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600,
  374.                6=19200, 7=38400
  375.                Parity: 0 none, 1 odd, 2 even
  376.                CALL SETCOMM(COMMPORT, BPS, PARITY, WORDLENGTH, STOPBITS)
  377.  
  378.  SETDRV        Set the default drive.
  379.                CALL SETDRV(DRV$)
  380.  
  381.  SETFATTR      Set a file's attribute.
  382.                Attribute: 1 readonly, 2 hidden, 4 system, 32 archive.
  383.                Attributes are additive.
  384.                SETFATTR(FIL$+CHR$(0), ATTR)
  385.  
  386.  SETFTD        Set a file's time and date.  If error, returns -1 in MONTH.
  387.                CALL SETFTD(FIL$+CHR$(0), MONTH, DAY, YEAR,
  388.                            HOUR, MINUTE, SECOND)
  389.  
  390.  SETMATI       Set an array to a given scalar (integer) value.
  391.  *not QB4*     CALL SETMATI(VARPTR(ARRAY(1)), ARRAYSIZE, VALUE)
  392.  
  393.  SETKBD        Set the status of the keyboard toggles.
  394.                CALL GETKBD(INSERT, CAPSLOCK, NUMLOCK, SCROLLLOCK)
  395.  
  396.  SETPOINT      Set a point on a text screen (0-79 col by 0-49 row).
  397.                CALL SETPOINT(COLUMN, ROW)
  398.  
  399.  SETSUB        Set the default subdirectory.
  400.                CALL SETSUB(SUB$+CHR$(0), ERRCODE)
  401.  
  402.  SHIFTL        Shift an integer left by COUNT bits.
  403.                CALL SHIFTL(VALUE, COUNT)
  404.  
  405.  SHIFTR        Shift an integer right by COUNT bits.
  406.                CALL SHIFTR(VALUE, COUNT)
  407.  
  408.  SOUNDEX       Returns the Soundex code for a string.
  409.                SCODE$ = ST$
  410.                CALL SOUNDEX(ST$, SCODE$, SLEN)
  411.                SCODE$ = LEFT$(SCODE$, SLEN)
  412.  
  413.  SPEAKER       Sets speaker status.  Toggle: 0 disable, nonzero enable.
  414.                CALL SPEAKER(TOGGLE)
  415.  
  416.  STRIP         Strips occurrences of a target character from a string.
  417.                CALL STRIP(ST$, TARGETCH$, SLEN)
  418.                ST$ = LEFT$(ST$, SLEN)
  419.  
  420.  STRIPBLANKS   Strips blanks (and control chars) from left (1), right (2),
  421.                or both (3) sides of a string.
  422.                CALL STRIPBLANKS(ST$, STRIPWHICH, SLEN)
  423.                ST$ = LEFT$(ST$, SLEN)
  424.  
  425.  STRIPRANGE    Strips chars within a given (inclusive) range from a string.
  426.                CALL STRIPRANGE(ST$, LO, HI, SLEN)
  427.                ST$ = LEFT$(ST$, SLEN)
  428.  
  429.  SUBEXIST      See if a subdirectory exists (drive spec is acceptable).
  430.                CALL SUBEXIST(SUB$+CHR$(0), SUBEX)
  431.                IF SUBEX THEN PRINT "Subdirectory exists"
  432.  
  433.  TESTPOINT     Tests a point on a text screen (0-79 col by 0-49 row).
  434.                CALL TESTPOINT(COLUMN, ROW, RESULT)
  435.  
  436.  TIME2INT      Squeeze the time down to a single integer.
  437.                CALL TIME2INT(HOUR, MIN, SEC, SQZTIME)
  438.  
  439.  TIMEN2S       Convert a time from numeric to string form.
  440.                CALL TIMEN2S(HOUR, MIN, SEC, TIM$)
  441.  
  442.  TIMES2N       Convert a time from string to numeric form.
  443.                CALL TIMES2N(HOUR, MIN, SEC, TIM$)
  444.  
  445.  TINSTR        Search for a given type of character in a string.
  446.                Alpha=1, Numeric=2, Symbol=4, Control=8, Graphics=16, Blank=32.
  447.                CALL TINSTR(ST$,CHRTYPE,PLACE)
  448.  
  449.  UPCASE        Convert a string to uppercase.
  450.                CALL UPCASE(ST$)
  451.  
  452.  WEEKDAY       Return the weekday (1 - 7, Sunday thru Saturday).
  453.                CALL WEEKDAY(DAY)
  454.  
  455.  WRITEBITF     Put a value in an array of arbitrary (1-8) bit length.
  456.  *not QB4*     CALL WRITEBITF(VARPTR(ARRAY(1)), INDEX, BITLEN, VALUE)
  457.  
  458.  XLATE         Translate a string, char by char, using a translation table.
  459.                CALL XLATE(CH$, XLATETABLE$)
  460.  
  461.  XMPRINT       Translate a char, and if it's not NUL, display it via DOS.
  462.                CALL XMPRINT(CH$, XLATETABLE$, COL, ROW)
  463.                LOCATE ROW, COL
  464.  
  465.  XQPRINT       Extended quick print, with color and page selection.
  466.                CALL CALCATTR(FOREGROUND, BACKGROUND, ATTR)
  467.                CALL XQPRINT(ST$, ROW, COL, ATTR, PAGE)
  468.  
  469.  XQPRINTD      Extended direct quick print, with color and page selection.
  470.                CALL CALCATTR(FOREGROUND, BACKGROUND, ATTR)
  471.                CALL XQPRINTD(ST$, ROW, COL, ATTR, PAGE)
  472.